package team.hyznrj.studentsys.service;

import team.hyznrj.studentsys.dto.PowerDto;
import team.hyznrj.studentsys.dto.RoleDto;
import team.hyznrj.studentsys.entity.account.key.PowerFunctionTableKey;
import team.hyznrj.studentsys.entity.account.key.RolePowerTableKey;

import java.util.List;
import java.util.Set;

/**
 * @author ReMidDream
 * @date 2018-05-07 19:12
 **/
public interface PowerService {

    /**
     * 根据 权限id 查询权限
     * @param powerId 权限id
     * @return PowerDto
     */
    PowerDto findPowerDtoByPowerId (String powerId);

    /**
     *  批量查询权限
     * @param powerId 权限id 的 Set
     * @return PowerDto的List
     */
    List<PowerDto> findPowerDtoByPowerIds (Set<String> powerId);

    /**
     * 查询全部权限
     * @return PowerDto的List
     */
    List<PowerDto> findAllPowerDto ();

    /**
     * 添加 权限 和 功能 的关系
     * @param powerFunctionTableKey 权限ID 和 功能ID
     */
    void insertRelationshipBetweenPowerAndFunction(PowerFunctionTableKey powerFunctionTableKey);

    /**
     * 删除 权限 和 功能 的关系
     * @param powerFunctionTableKey 权限ID 和 功能ID
     */
    void deleteRelationshipBetweenPowerAndFunction(PowerFunctionTableKey powerFunctionTableKey);

    /**
     * 删除 权限
     * @param powerId 权限id
     */
    void deletePower (String powerId);

    /**
     *  添加 权限
     * @param powerDto 实体类
     */
    void insertUpdatePower(PowerDto powerDto);
}
